// pages/select-popup/select-popup.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    label: String, // 输入框标签
    place: String, // 输入框提示
    value: String,
    type: String, // 输入框提示
    valueKeyName: { // 选择器 选项数组中 对象的value的默认key
      type: String,
      value: 'text'
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    popShow: false,
    icon: 'arrow-down', // 下拉箭头
    minDate: new Date().getTime(),
    maxDate: new Date(2024, 11, 31).getTime(),
    defaultDate: '',
    currentDate: new Date().getTime(),
    formatter: (type, value) => {
      return value;
    },
  },

  /**
   * 组件的方法列表
   */
  methods: {
    tap() {
      this.setData({
        popShow: true,
        icon: 'arrow-up'
      })
    },
    onCancel() {
      this.setData({
        popShow: false,
        icon: 'arrow-down'
      })
    },
    formatDate(date) {
      date = new Date(date);
      if (this.data.type == 'datetime') {
        return `${date.getFullYear()}.${("0" + (date.getMonth() + 1)).slice(-2)}.${("0" + date.getDate()).slice(-2)} ${("0" + date.getHours()).slice(-2)}:${("0" + date.getMinutes()).slice(-2)}`;
      } else {
        return `${date.getFullYear()}.${("0" + (date.getMonth() + 1)).slice(-2)}.${("0" + date.getDate()).slice(-2)}`;
      }
    },
    onConfirm(event) {
      this.setData({
        value: this.formatDate(event.detail),
      })
      this.triggerEvent('confirm', {
        value: event.detail
      })
      this.onCancel()
    },
    onInput(event) {
      this.setData({
        currentDate: event.detail,
      });
    }
  }
})